package com.myk.game.shapechesstool.data;

public enum ActionState {
    /**
     * 等待黑棋落子
     */
    WAIT_FALL_BLACK("等待黑棋落子..."),
    /**
     * 等待白棋落子
     */
    WAIT_FALL_WHITE("等待白棋落子..."),
    /**
     * 黑棋落黑棋后移动
     */
    THEN_MOVE_BLACK("选择黑棋移动的位置..."),
    /**
     * 白棋落白棋后移动
     */
    THEN_MOVE_WHITE("选择白棋移动的位置..."),
    /**
     * 选择被黑棋挤走的白棋的位置
     */
    PUSH_AWAY_WHITE("选择白棋被挤到的位置..."),
    /**
     * 选择被白棋挤走的黑棋的位置
     */
    PUSH_AWAY_BLACK("选择黑棋被挤到的位置..."),
    /**
     * 一键提走成型的黑棋（提子后算分）
     */
    REMOVE_SHAPED_BLACK("点击黑棋成型的区域快捷提子..."),
    /**
     * 一键提走成型的白棋（提子后算分）
     */
    REMOVE_SHAPED_WHITE("点击白棋成型的区域快捷提子..."),
    /**
     * 强制在该位置落下黑棋
     */
    ENFORCE_BLACK("持续摆放黑棋..."),
    /**
     * 强制在该位置落下黑棋
     */
    ENFORCE_WHITE("持续摆放白棋..."),
    /**
     * 强制删除这个位置的棋子
     */
    CONTINUE_DELETE("选择棋子移出棋盘..."),
    /**
     * 对弈结束，黑方获胜，棋盘不再接受事件
     */
    BLACK_WIN("恭喜黑棋获胜！"),
    /**
     * 对弈结束，白方获胜，棋盘不再接受事件
     */
    WHITE_WIN("恭喜白棋获胜！");

    /**
     * 该状态对应的操作提示
     */
    public final String tip;

    ActionState(String tip) {
        this.tip = tip;
    }

    public static ActionState getActionStateByTip(String tip) {
        if (WAIT_FALL_BLACK.tip.equals(tip)) return WAIT_FALL_BLACK;
        else if (WAIT_FALL_WHITE.tip.equals(tip)) return WAIT_FALL_WHITE;
        else if (THEN_MOVE_BLACK.tip.equals(tip)) return THEN_MOVE_BLACK;
        else if (THEN_MOVE_WHITE.tip.equals(tip)) return THEN_MOVE_WHITE;
        else if (PUSH_AWAY_WHITE.tip.equals(tip)) return PUSH_AWAY_WHITE;
        else if (PUSH_AWAY_BLACK.tip.equals(tip)) return PUSH_AWAY_BLACK;
        else if (REMOVE_SHAPED_BLACK.tip.equals(tip)) return REMOVE_SHAPED_BLACK;
        else if (REMOVE_SHAPED_WHITE.tip.equals(tip)) return REMOVE_SHAPED_WHITE;
        else if (ENFORCE_BLACK.tip.equals(tip)) return ENFORCE_BLACK;
        else if (ENFORCE_WHITE.tip.equals(tip)) return ENFORCE_WHITE;
        else if (CONTINUE_DELETE.tip.equals(tip)) return CONTINUE_DELETE;
        else if (BLACK_WIN.tip.equals(tip)) return BLACK_WIN;
        else return WHITE_WIN;
    }
}
